package com.blog.dao.dao;

import java.util.List;

/**
 * 增删改查接口
 *
 * @param <T>
 */
public interface CrudDAO<T, E> {

    /**
     * 根据检索条件获取所有记录
     *
     * @param e 请求参数对象
     * @return 符合检索条件的记录集合
     */
    List<T> list(E e);

    /**
     * 获取单条记录
     *
     * @param id 主键
     * @return 单条记录
     */
    T get(String id);

    /**
     * 保存记录
     *
     * @param domain 记录实体类对象
     * @return 保存条数
     */
    int save(T domain);

    /**
     * 更新记录
     *
     * @param domain 记录实体类对象
     */
    void update(T domain);

    /**
     * 删除记录
     *
     * @param id 主键
     */
    void remove(String id);

}
